<?php

echo '<br>Internação '.date("d/m/Y")." - ".date("H:i:s").'<br>';

$dataVersao = array(); 
$erro = FALSE;

$nao_gerar = 0;
$var_destino = ''; // 4,59,252 

$sql_con = "SELECT con_cod FROM con WHERE  con_sta_atv = 'A' AND con_sta_tis = 1 ";
$con_sql = odbc_exec($bd_ingres, $sql_con);
while(odbc_fetch_row($con_sql))
{
    $var_destino .= odbc_result($con_sql,'con_cod').',';
}
$var_destino .= '0';

$var_sql = '';

$var_sql = " AND tisint_num not in(2159737,2159941,2179675,2189147 )";
//$var_sql .= " AND tisint_num in( 2174009 )";


$sql_todas_guias = "SELECT tisint_num, con_cod 
                    FROM tisint
                    WHERE tisint_sta = 'P'
                    AND tisint_dat_emi_gui >= '01092014'
                    AND con_cod IN(" . $var_destino . ") 
                    AND ifnull(tisint_num_gui_prs,0) < 1 
                    " . $var_sql . "";

$guia_todas = odbc_exec($bd_ingres, $sql_todas_guias); 
$count_envio = 0;
$total_envio = 15;
while (odbc_fetch_row($guia_todas)&& $count_envio < $total_envio){ 
    
    $msg = '';
    
    try {
        
        $tisint_num = odbc_result($guia_todas, 'tisint_num'); //odbc_field_name($guia_todas,1));
        $tisint_con_cod = odbc_result($guia_todas, 'con_cod'); //odbc_field_name($guia_todas,2));
        
        if($tisint_con_cod == '4' ||  $tisint_con_cod == '59' || $tisint_con_cod == '183' || $tisint_con_cod == '190' || $tisint_con_cod == '252'){
            
            $count_envio++;
            
            $sql_hsvp = "SELECT con_cod_hsp_ope,con_cne FROM con WHERE con_cod=" . $tisint_con_cod . " ";
            $cabecalho = odbc_exec($bd_ingres, $sql_hsvp);
            while (odbc_fetch_row($cabecalho)) {
                $cod_hsvp = odbc_result($cabecalho, 'con_cod_hsp_ope'); //odbc_field_name($cabecalho, 1));
                $destino = odbc_result($cabecalho, 'con_cne'); //odbc_field_name($cabecalho, 2));
                $destino = substr($destino, 0, 6);
            }
            if (strlen($cod_hsvp) < 2) {
                $cod_hsvp = "92021062000106";
            }
            $tipoTransacao = 'SOLICITACAO_PROCEDIMENTOS';
            $dataRegistroTransacao = date("Y-m-d");
            $horaRegistroTransacao = date("h:i:s");
            $versaoPadrao = '3.02.00';
            $date_hora = date("hi");
            $data_date = date("dmY");//date("Y.m.d");
            $vrf_trn = rand(1, 10000);
            $CNPJ = "92021062000106";


            $insert_tistrn="INSERT INTO tistrn(tistrn_num, fil_cod, emp_cod, con_cod, tistrn_dat, tistrn_hor, tistrn_tpo, tistrn_num_ori, tistrn_num_ori_prr, tistrn_ftp_nom, tistrn_ftp_cam, tistrn_ftp_sta) values (-1,1,1,".$tisint_con_cod.",'".$data_date."','".$date_hora."','TISINT',".$tisint_num.",0,'".$vrf_trn."','','E')";
            $result = odbc_exec($bd_ingres,$insert_tistrn);
            if($result == FALSE){
                $erro = TRUE;
                $msg = 'tisint_num: ' . $tisint_num . ' - Erro insert tistrn';
            }

            $sql_sequencialTransacao1 = "SELECT max(tistrn_num)
                                                       FROM tistrn
                                                       WHERE tistrn_num_ori=" . $tisint_num . "
                                                       AND tistrn_tpo='TISINT'
                                                       AND tistrn_hor='" . $date_hora . "'
                                                       AND tistrn_dat='" . $data_date . "'
                                                       AND con_cod=" . $tisint_con_cod . "
                                                       AND tistrn_ftp_nom='" . $vrf_trn . "' ";

            $sequencialtr = odbc_exec($bd_ingres, $sql_sequencialTransacao1);
            while (odbc_fetch_row($sequencialtr)) {
                $sequencialTransacao = odbc_result($sequencialtr, odbc_field_name($sequencialtr, 1));
            }

            if (strlen($sequencialTransacao) == 0){
                $erro = TRUE;
                $msg = 'tisint_num: ' . $tisint_num . ' - Sem sequencial da transação';
            }

            $dataVersao = array();  
            $hash = '';
            $erro = FALSE; 

            $dataVersao['cabecalho']['identificacaoTransacao']['tipoTransacao'] = $tipoTransacao;
            $hash .= $tipoTransacao;

            $dataVersao['cabecalho']['identificacaoTransacao']['sequencialTransacao'] = $sequencialTransacao;
            $hash .= $sequencialTransacao;

            $dataVersao['cabecalho']['identificacaoTransacao']['dataRegistroTransacao'] = $dataRegistroTransacao;
            $hash .= $dataRegistroTransacao;

            $dataVersao['cabecalho']['identificacaoTransacao']['horaRegistroTransacao'] = $horaRegistroTransacao;
            $hash .= $horaRegistroTransacao;

            $dataVersao['cabecalho']['origem']['identificacaoPrestador']['codigoPrestadorNaOperadora'] = $cod_hsvp;
            $hash .= $cod_hsvp;

            $dataVersao['cabecalho']['destino']['registroANS'] = $destino;
            $hash .= $destino;

            $dataVersao['cabecalho']['versaoPadrao'] = $versaoPadrao;
            $hash .= $versaoPadrao;

            $sql_ingres_tisint = "SELECT
                tisint_num_ans,		tisint_dat_emi_gui,		tisint_num_gui,			tisint_num_crt,
                tisint_nom_ben,		tisint_nom_pln,			tisint_dat_vld,			tisint_num_cns,
                tisint_cod_prf,		tisint_nom_prf,			tisint_tpo_log_prf,		tisint_nom_log_prf,
                tisint_num_end_prf,	tisint_cpl_end_prf,		tisint_cod_ibg_prf,		tisint_nom_loc_prf,
                tisint_cod_unf_prf,	tisint_cod_cep_prf,		tisint_cod_cns_prf,		tisint_nom_sol_prf,
                tisint_sgl_cnl_prf,	tisint_num_cnl_prf,		tisint_cod_unf_cnl_prf,	tisint_cod_cbo_prf, tisint_cbo_cod_prf,
                tisint_cod_prs,		tisint_nom_prs,			tisint_cte_int,			tisint_tpo_int,
                tisint_ind_cln,		tisint_rgm_int,			tisint_dat_aut,			tisint_snh,
                tisint_vld_snh,		tisint_qtd_dia_aut,		tisint_dat_adm_hsp,		tisint_tpo_aco_aut,
                tisint_qtd_dia_sol,	tisint_tpo_log_prs,		tisint_nom_log_prs,		tisint_num_end_prs,
                tisint_cpl_end_prs,	tisint_cod_ibg_prs,		tisint_nom_loc_prs,		tisint_cod_unf_prs,
                tisint_cod_cep_prs,	tisint_cod_cns_prs_aut,	tisint_obs,				tisint_cid_doe1,
                tisint_cid_nom_doe1,tisint_tpo_doe,			tisint_tmp_doe,			tisint_tpo_tmp_doe,
                tisint_sta_acd_doe,	tisint_cid_doe2,		tisint_cid_nom_doe2,	tisint_cid_doe3,
                tisint_cid_nom_doe3,tisint_cid_doe4,		tisint_cid_nom_doe4,	tisint_num,
                fil_cod,emp_cod, tisint_num_gui_ope, tisint_sta_opm, tisint_sta_qui, tisint_sta_rna, tisint_sgl_cnl_prf,
                tisint_num_cnl_prf, cta_num_amb_int, pac_cod
                FROM tisint
                WHERE  con_cod=" . $tisint_con_cod . "
                AND tisint_num=" . $tisint_num . "";
            $cnsl_int = odbc_exec($bd_ingres, $sql_ingres_tisint);
            while (odbc_fetch_row($cnsl_int)) {
                $fil_cod = trim(odbc_result($cnsl_int, 'fil_cod')); // uso
                $emp_cod = trim(odbc_result($cnsl_int, 'emp_cod')); // uso
                $tisint_num_ans = trim(odbc_result($cnsl_int, 'tisint_num_ans')); // uso 
                $tisint_dat_emi_gui = date("Y-m-d", strtotime(odbc_result($cnsl_int, 'tisint_dat_emi_gui')));
                $tisint_num_gui_ope = trim(odbc_result($cnsl_int, 'tisint_num_gui_ope'));
                $tisint_num_gui = trim(odbc_result($cnsl_int, 'tisint_num_gui')); // uso
                $tisint_num_crt = trim(odbc_result($cnsl_int, 'tisint_num_crt')); // uso
                $tisint_nom_ben = trim(odbc_result($cnsl_int, 'tisint_nom_ben')); // uso
                $tisint_dat_vld = date("Y-m-d", strtotime(odbc_result($cnsl_int, 'tisint_dat_vld'))); // uso
                $tisint_num_cns = trim(odbc_result($cnsl_int, 'tisint_num_cns')); // uso
                $identificadorBeneficiario = base64_encode($tisint_num_cns);
                $tisint_cod_prf = trim(odbc_result($cnsl_int, 'tisint_cod_prf')); // uso
                $tisint_nom_prf = trim(odbc_result($cnsl_int, 'tisint_nom_prf')); // uso
                $tisint_cod_cns_prf = trim(odbc_result($cnsl_int, 'tisint_cod_cns_prf')); // uso
                $tisint_nom_sol_prf = trim(odbc_result($cnsl_int, 'tisint_nom_sol_prf')); // uso
                $tisint_sgl_cnl_prf = trim(odbc_result($cnsl_int, 'tisint_sgl_cnl_prf')); // uso
                $tisint_num_cnl_prf = trim(odbc_result($cnsl_int, 'tisint_num_cnl_prf')); // uso
                $tisint_cod_unf_cnl_prf = trim(odbc_result($cnsl_int, 'tisint_cod_unf_cnl_prf')); // uso
                $tisint_cod_cbo_prf = trim(odbc_result($cnsl_int, 'tisint_cod_cbo_prf')); // uso
                $tisint_cbo_cod_prf = trim(odbc_result($cnsl_int, 'tisint_cbo_cod_prf')); // uso
                $tisint_cod_prs = trim(odbc_result($cnsl_int, 'tisint_cod_prs')); // uso
                $tisint_nom_prs = trim(odbc_result($cnsl_int, 'tisint_nom_prs')); // uso
                $tisint_cte_int = trim(odbc_result($cnsl_int, 'tisint_cte_int'));
                $tisint_tpo_int = trim(odbc_result($cnsl_int, 'tisint_tpo_int'));
                $tisint_ind_cln = trim(odbc_result($cnsl_int, 'tisint_ind_cln'));
                $tisint_rgm_int = trim(odbc_result($cnsl_int, 'tisint_rgm_int'));
                $CIDPrincipal_nomeTabela = 'CID-10';
                $tisint_cid_nom_doe1 = trim(odbc_result($cnsl_int, 'tisint_cid_nom_doe1'));
                $tisint_tpo_doe = trim(odbc_result($cnsl_int, 'tisint_tpo_doe'));
                $tisint_sta_acd_doe = trim(odbc_result($cnsl_int, 'tisint_sta_acd_doe'));
                $tisint_sta_opm = trim(odbc_result($cnsl_int, 'tisint_sta_opm'));
                $tisint_sta_qui = trim(odbc_result($cnsl_int, 'tisint_sta_qui'));
                $tisint_cid_doe1 = trim(str_replace(".", "", odbc_result($cnsl_int, 'tisint_cid_doe1')));
                $tisint_cid_doe2 = trim(str_replace(".", "", odbc_result($cnsl_int, 'tisint_cid_doe2')));
                $tisint_dat_adm_hsp = date("Y-m-d", strtotime(odbc_result($cnsl_int, 'tisint_dat_adm_hsp'))); // uso
                $tisint_qtd_dia_sol = trim(odbc_result($cnsl_int, 'tisint_qtd_dia_sol')); // uso
                $tisint_obs = trim(odbc_result($cnsl_int, 'tisint_obs')); // uso
                $cta_num_amb_int = trim(odbc_result($cnsl_int, 'cta_num_amb_int')); // uso
                $tisint_sta_rna = trim(odbc_result($cnsl_int, 'tisint_sta_rna'));
                if(strlen($tisint_sta_rna) == 0) $tisint_sta_rna = 'N';
                $tisint_snh = trim(odbc_result($cnsl_int, 'tisint_snh'));
                $tisint_dat_aut = date("Y-m-d", strtotime(odbc_result($cnsl_int, 'tisint_dat_aut'))); // uso
                $tisint_tel_prf = ''; // não tem na int
                $pac_cod = trim(odbc_result($cnsl_int, 'pac_cod'));
                        
                if (strlen($tisint_num_ans) < 6)
                        $tisint_num_ans = '319384';

                if (strlen($tisint_num_crt) == 0 or (int) $tisint_num_crt < 1) {
                    $erro = TRUE;
                    $msg = 'tisint_num: ' . $tisint_num . ' Pac: '.$pac_cod . ' - Sem numero da carteira';    
                } else if (strlen($tisint_num_crt) > 1) {
                    while (strlen($tisint_num_crt) < 17)
                        $tisint_num_crt = '0' . $tisint_num_crt; // uso
                }

                $csp_cod_tis = 0;
                $query = "SELECT csp_cod_tis FROM conprf WHERE csp_sgl like '".$tisint_sgl_cnl_prf."'"; 
                $result = odbc_exec($bd_ingres, $query);
                while (odbc_fetch_row($result)) {
                    $csp_cod_tis = (int) odbc_result($result,'csp_cod_tis');
                }

                $unf_cod_tis = 0;
                $query = "SELECT unf_cod_tis FROM unf WHERE unf_sig like '".$tisint_cod_unf_cnl_prf."'";
                $result = odbc_exec($bd_ingres, $query);
                while (odbc_fetch_row($result)) {
                    $unf_cod_tis = trim(odbc_result($result,'unf_cod_tis'));
                } 
                
                if(strlen($tisint_ind_cln) == 0) $tisint_ind_cln = 'Sem indicação clinica.';
                

                if($tisint_cte_int == 'E') $tisint_cte_int = 1;
                else $tisint_cte_int = 2;
                
                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['registroANS'] = $tisint_num_ans;
                $hash .= $tisint_num_ans;


                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['numeroGuiaPrestador'] = $tisint_num_gui;
                $hash .= $tisint_num_gui;

                if (strlen($tisint_num_gui) == 0) {
                    $erro = TRUE;
                    $msg = 'tisint_num: ' . $tisint_num . ' Pac: '.$pac_cod . ' - Sem numero de guia pricipal';
                }

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosBeneficiario']['numeroCarteira'] = $tisint_num_crt;
                $hash .= $tisint_num_crt;


                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosBeneficiario']['atendimentoRN'] = $tisint_sta_rna; // N
                $hash .= $tisint_sta_rna;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosBeneficiario']['nomeBeneficiario'] = $tisint_nom_ben;
                $hash .= $tisint_nom_ben;

                //$dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosBeneficiario']['numeroCNS'] = $tisint_num_cns;
                //$hash .= $tisint_num_cns;
                //$dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosBeneficiario']['identificadorBeneficiario'] = $tisint_cod_prf;
                //$hash .= $tisint_cod_prf;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['identificacaoSolicitante']['dadosDoContratado']['codigoPrestadorNaOperadora'] = $tisint_cod_prf;
                $hash .= $tisint_cod_prf;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['identificacaoSolicitante']['dadosDoContratado']['nomeContratado'] = $tisint_nom_prf;
                $hash .= $tisint_nom_prf;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['identificacaoSolicitante']['dadosProfissionalContratado']['nomeProfissional'] = $tisint_nom_sol_prf;
                $hash .= $tisint_nom_sol_prf;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['identificacaoSolicitante']['dadosProfissionalContratado']['conselhoProfissional'] = $csp_cod_tis; // $tisint_sgl_cnl_prf;
                $hash .= $csp_cod_tis; // $tisint_sgl_cnl_prf

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['identificacaoSolicitante']['dadosProfissionalContratado']['numeroConselhoProfissional'] = $tisint_num_cnl_prf;
                $hash .= $tisint_num_cnl_prf; 

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['identificacaoSolicitante']['dadosProfissionalContratado']['UF'] = $unf_cod_tis; //$tisint_cod_unf_cnl_prf;
                $hash .= $unf_cod_tis; //$tisint_cod_unf_cnl_prf;

                if(strlen($tisint_cbo_cod_prf) < 2) $tisint_cbo_cod_prf = '201115';
                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['identificacaoSolicitante']['dadosProfissionalContratado']['CBOS'] = $tisint_cbo_cod_prf; //$tisint_cod_cbo_prf;
                $hash .= $tisint_cbo_cod_prf;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosHospitalSolicitado']['codigoIndicadonaOperadora'] = $tisint_cod_prs; 
                $hash .= $tisint_cod_prs;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosHospitalSolicitado']['nomeContratadoIndicado'] = $tisint_nom_prs;
                $hash .= $tisint_nom_prs;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosHospitalSolicitado']['dataSugeridaInternacao'] = $tisint_dat_adm_hsp;
                $hash .= $tisint_dat_adm_hsp;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosInternacao']['caraterAtendimento'] = $tisint_cte_int;
                $hash .= $tisint_cte_int;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosInternacao']['tipoInternacao'] = $tisint_tpo_int;
                $hash .= $tisint_tpo_int;

                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosInternacao']['regimeInternacao'] = $tisint_rgm_int;
                $hash .= $tisint_rgm_int;

                if (strlen($tisint_qtd_dia_sol) == 0) $tisint_qtd_dia_sol = 1;
                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosInternacao']['qtDiariasSolicitadas'] = $tisint_qtd_dia_sol;
                $hash .= $tisint_qtd_dia_sol;

                if (strlen($tisint_sta_opm) == 0) $tisint_sta_opm = 'N';
                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosInternacao']['indicadorOPME'] = $tisint_sta_opm; // 'N';
                $hash .= $tisint_sta_opm;

                if (strlen($tisint_sta_qui) == 0) $tisint_sta_qui = 'N';
                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosInternacao']['indicadorQuimio'] = $tisint_sta_qui; // 'N';
                $hash .= $tisint_sta_qui;

                if (strlen($tisint_ind_cln) > 0){
                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dadosInternacao']['indicacaoClinica'] = $tisint_ind_cln;
                    $hash .= $tisint_ind_cln;
                }
                
                if (strlen($tisint_cid_doe1) == 0 || $tisint_cid_doe1 == '0') $tisint_cid_doe1 = 'Z00';
                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['hipotesesDiagnosticas']['diagnosticoCID'] = $tisint_cid_doe1;
                $hash .= $tisint_cid_doe1;

                if($tisint_sta_acd_doe == 0 || $tisint_sta_acd_doe == '0') $tisint_sta_acd_doe = 9;
                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['hipotesesDiagnosticas']['indicadorAcidente'] = $tisint_sta_acd_doe;
                $hash .= $tisint_sta_acd_doe;

                $count = 0;
                $sql_ingres_tisintpdc = "SELECT 
                    tisintpcd_qtd_pcd_sol,tisintpcd_tab_pcd_sol,tisintpcd_cod_pcd_sol,
                    tisintpcd_des_pcd_sol,tisintpcd_num, tisintpcd_nom_pcd_sol
                    FROM tisintpcd
                    WHERE tisintpcd_sta<>'C'
                    AND tisint_num=" . $tisint_num . "
                    AND fil_cod=" . $fil_cod . "
                    AND emp_cod=" . $emp_cod . " ";
                $cnsl_pcd = odbc_exec($bd_ingres, $sql_ingres_tisintpdc);
                while (odbc_fetch_row($cnsl_pcd)) {
                    $tisintpcd_num = trim(odbc_result($cnsl_pcd, 'tisintpcd_num'));
                    $tisintpcd_qtd_pcd_sol = trim(odbc_result($cnsl_pcd, 'tisintpcd_qtd_pcd_sol'));
                    $tisintpcd_tab_pcd_sol = trim(odbc_result($cnsl_pcd, 'tisintpcd_tab_pcd_sol'));
                    $tisintpcd_cod_pcd_sol = trim(odbc_result($cnsl_pcd, 'tisintpcd_cod_pcd_sol'));
                    $tisintpcd_des_pcd_sol = trim(odbc_result($cnsl_pcd, 'tisintpcd_des_pcd_sol'));
                    $tisintpcd_nom_pcd_sol = trim(odbc_result($cnsl_pcd, 'tisintpcd_nom_pcd_sol')); 

                    if($tisintpcd_tab_pcd_sol == '0' or $tisintpcd_tab_pcd_sol == '') $tisintpcd_tab_pcd_sol = '00';
                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['procedimentosSolicitados_' . $count]['procedimento']['codigoTabela'] = $tisintpcd_tab_pcd_sol; // 18, 19, 20, 22, 90, 98, 00 //$tisintpcd_tab_pcd_sol;
                    $hash .= $tisintpcd_tab_pcd_sol; //$tisintpcd_tab_pcd_sol;

                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['procedimentosSolicitados_' . $count]['procedimento']['codigoProcedimento'] = $tisintpcd_cod_pcd_sol;
                    $hash .= $tisintpcd_cod_pcd_sol;
                    
                    if(strlen($tisintpcd_nom_pcd_sol) == 0) $tisintpcd_nom_pcd_sol = $tisintpcd_des_pcd_sol;
                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['procedimentosSolicitados_' . $count]['procedimento']['descricaoProcedimento'] = $tisintpcd_nom_pcd_sol;
                    $hash .= $tisintpcd_nom_pcd_sol;

                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['procedimentosSolicitados_' . $count]['quantidadeSolicitada'] = $tisintpcd_qtd_pcd_sol;
                    $hash .= $tisintpcd_qtd_pcd_sol;

                    $count++; 
                    
                    if (strlen($tisintpcd_nom_pcd_sol) < 3) { 
                        $erro = TRUE;
                        $msg = 'tissdt_num: ' . $tisint_num . ' Pac: '.$pac_cod . ' - Sem descrição do procedimento no convênio';
                    }

                }
                
                $observacao_valor = '';
                
                $sql_ingres_sol = "SELECT tisintopm_tab_opm_sol, tisintopm_cod_opm_sol,
                    tisintopm_nom_opm_sol, tisintopm_qtd_opm_sol,   money(tisintopm_vlr_uni_opm_sol) as tisintopm_vlr_uni_opm_sol
                    FROM tisintopm
                    WHERE tisintopm_sta <> 'C'
                    AND tisint_num = " . $tisint_num . "
                    AND fil_cod = " . $fil_cod . "
                    AND emp_cod = " . $emp_cod . " ";
                $cnsl_opmsol = odbc_exec($bd_ingres, $sql_ingres_sol);
                while (odbc_fetch_row($cnsl_opmsol)) { //inicio while tissol
                    $tisintopm_tab_opm_sol = trim(odbc_result($cnsl_opmsol, 'tisintopm_tab_opm_sol')); // uso
                    $tisintopm_cod_opm_sol = trim(odbc_result($cnsl_opmsol, 'tisintopm_cod_opm_sol')); // uso 
                    $tisintopm_nom_opm_sol = trim(odbc_result($cnsl_opmsol, 'tisintopm_nom_opm_sol'));
                    $tisintopm_qtd_opm_sol = trim(odbc_result($cnsl_opmsol, 'tisintopm_qtd_opm_sol')); // uso
                    $tisintopm_vlr_uni_opm_sol = odbc_result($cnsl_opmsol, 'tisintopm_vlr_uni_opm_sol');
                    
                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['procedimentosSolicitados_' . $count]['procedimento']['codigoTabela'] = $tisintopm_tab_opm_sol;
                    $hash .= $tisintopm_tab_opm_sol; 

                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['procedimentosSolicitados_' . $count]['procedimento']['codigoProcedimento'] = $tisintopm_cod_opm_sol;
                    $hash .= $tisintopm_cod_opm_sol;

                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['procedimentosSolicitados_' . $count]['procedimento']['descricaoProcedimento'] = $tisintopm_nom_opm_sol;
                    $hash .= $tisintopm_nom_opm_sol;

                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['procedimentosSolicitados_' . $count]['quantidadeSolicitada'] = $tisintopm_qtd_opm_sol;
                    $hash .= $tisintopm_qtd_opm_sol;
                    
                    $count++; 
                    
                    if($tisintopm_tab_opm_sol == '20'){
                        $observacao_valor .= $tisintopm_cod_opm_sol. '='.$tisintopm_vlr_uni_opm_sol.' unit, ';
                    }
                    /*
                    if($tisintopm_tab_opm_sol == '20') {
                        $erro = TRUE;
                        $msg = 'tisint_num: ' . $tisint_num . ' Pac: '.$pac_cod . ' - POR ENQUANTO NÃO ENVIAR MATERIAIS - VER COM DOUGLAS<br>';
                    }*/
                    
                    if (strlen($tisintopm_nom_opm_sol) < 3) { 
                        $erro = TRUE;
                        $msg = 'tissdt_num: ' . $tisint_num . ' Pac: '.$pac_cod . ' - Sem descrição do procedimento no convênio';
                    }
                    
                }
                
                if ($count == 0) { 
                    $erro = TRUE;
                    $msg = 'tisint_num: ' . $tisint_num . ' Pac: '.$pac_cod . ' - Sem procedimentos';
                }
                
                $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['dataSolicitacao'] = $tisint_dat_emi_gui;
                $hash .= $tisint_dat_emi_gui;
                
                // gambiara para unimed, enviar valores por observação
                if(strlen($observacao_valor) > 0){
                    $tissdt_obs .= '. '. $observacao_valor;
                }
                    
                if(strlen($tisint_obs) > 0){
                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['observacao'] = $tisint_obs;
                    $hash .= $tisint_obs;
                }
                // opme
                
                $count = 0;
                $sql_ingres_sol = "SELECT tisintopm_qtd_opm_sol, tisintopm_nom_fab_opm_sol, money(tisintopm_vlr_uni_opm_sol) as tisintopm_vlr_uni_opm_sol,
                        tisintopm_tab_opm_sol, tisintopm_cod_opm_sol, tisintopm_des_opm_sol, tisintopm_num,
                        tisintopm_opc_frn, tisintopm_num_aut_frn, tisintopm_nom_opm_sol, tisintopm_ref_frn,
                        tisintopm_reg_msa
                    FROM tisintopm
                    WHERE tisintopm_sta <> 'C' AND tisintopm_tab_opm_sol = 19
                    AND tisint_num = " . $tisint_num . "
                    AND fil_cod = " . $fil_cod . "
                    AND emp_cod = " . $emp_cod . " ";
                $cnsl_opmsol = odbc_exec($bd_ingres, $sql_ingres_sol);
                while (odbc_fetch_row($cnsl_opmsol)) { //inicio while tissol
                    $tisintopm_qtd_opm_sol = trim(odbc_result($cnsl_opmsol, 'tisintopm_qtd_opm_sol')); // uso
                    $tisintopm_nom_fab_opm_sol = trim(odbc_result($cnsl_opmsol, 'tisintopm_nom_fab_opm_sol')); // uso 
                    $tisintopm_nom_fab_opm_sol = str_replace("&", " ", $tisintopm_nom_fab_opm_sol); // uso 
                    $tisintopm_vlr_uni_opm_sol = odbc_result($cnsl_opmsol, 'tisintopm_vlr_uni_opm_sol'); // uso
                    $tisintopm_tab_opm_sol = trim(odbc_result($cnsl_opmsol, 'tisintopm_tab_opm_sol')); // uso
                    $tisintopm_cod_opm_sol = trim(odbc_result($cnsl_opmsol, 'tisintopm_cod_opm_sol')); // uso 
                    $tisintopm_des_opm_sol = trim(odbc_result($cnsl_opmsol, 'tisintopm_des_opm_sol')); // uso
                    $tisintopm_num = trim(odbc_result($cnsl_opmsol, 'tisintopm_num')); // uso
                    $tisintopm_opc_frn = trim(odbc_result($cnsl_opmsol, 'tisintopm_opc_frn')); // uso
                    $tisintopm_num_aut_frn =  trim(odbc_result($cnsl_opmsol, 'tisintopm_num_aut_frn')); // uso
                    $tisintopm_nom_opm_sol = trim(odbc_result($cnsl_opmsol, 'tisintopm_nom_opm_sol'));
                    $tisintopm_ref_frn = trim(odbc_result($cnsl_opmsol, 'tisintopm_ref_frn'));
                    $tisintopm_reg_msa = trim(odbc_result($cnsl_opmsol, 'tisintopm_reg_msa'));
                    
                    if ($count == 0) {
                        
                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['cabecalhoAnexo']['registroANS'] = $tisint_num_ans;
                        $hash .= $tisint_num_ans;

                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['cabecalhoAnexo']['numeroGuiaAnexo'] = $tisint_num_gui;
                        $hash .= $tisint_num_gui; 

                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['cabecalhoAnexo']['numeroGuiaReferenciada'] = $tisint_num;
                        $hash .= $tisint_num;//$tisint_num_gui_pri;

                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['cabecalhoAnexo']['dataSolicitacao'] = $tisint_dat_emi_gui; 
                        $hash .= $tisint_dat_emi_gui;

                        if(strlen($tisint_snh) > 0){
                            $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['cabecalhoAnexo']['senha'] = $tisint_snh;
                            $hash .= $tisint_snh;
                        }

                        if(strlen($tisint_dat_aut) > 0 && $tisint_dat_aut != '1970-01-01'){
                            $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['cabecalhoAnexo']['dataAutorizacao'] = $tisint_dat_aut;
                            $hash .= $tisint_dat_aut;
                        }

                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['dadosBeneficiario']['numeroCarteira'] = $tisint_num_crt;
                        $hash .= $tisint_num_crt;

                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['dadosBeneficiario']['atendimentoRN'] = $tisint_sta_rna;
                        $hash .= $tisint_sta_rna;

                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['dadosBeneficiario']['nomeBeneficiario'] = $tisint_nom_ben;
                        $hash .= $tisint_nom_ben;

                        //$dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['dadosBeneficiario']['identificadorBeneficiario'] = '618645531751';
                        //$hash .= '618645531751';

                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['profissionalSolicitante']['nomeProfissional'] = $tisint_nom_prf;
                        $hash .= $tisint_nom_prf;

                        if(strlen($tisint_tel_prf) == 0) $tisint_tel_prf = '5433164010';
                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['profissionalSolicitante']['telefoneProfissional'] = $tisint_tel_prf;
                        $hash .= $tisint_tel_prf;

                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['justificativaTecnica'] = $tisint_ind_cln;
                        $hash .= $tisint_ind_cln;

                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['especificacaoMaterial'] = $tisint_ind_cln;
                        $hash .= $tisint_ind_cln; 

                    }


                    if (strlen($tisintopm_cod_opm_sol) < 8)
                        while (strlen($tisintopm_cod_opm_sol) < 8)
                            $tisintopm_cod_opm_sol = '0' . $tisintopm_cod_opm_sol; 

                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['opmeSolicitadas_'.$count]['opmeSolicitada']['identificacaoOPME']['codigoTabela'] = $tisintopm_tab_opm_sol;
                    $hash .= $tisintopm_tab_opm_sol;

                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['opmeSolicitadas_'.$count]['opmeSolicitada']['identificacaoOPME']['codigoProcedimento'] = $tisintopm_cod_opm_sol;
                    $hash .= $tisintopm_cod_opm_sol;

                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['opmeSolicitadas_'.$count]['opmeSolicitada']['identificacaoOPME']['descricaoProcedimento'] = $tisintopm_nom_opm_sol;
                    $hash .= $tisintopm_nom_opm_sol;

                    if (strlen($tisintopm_opc_frn) == 0) $tisintopm_opc_frn = '1';
                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['opmeSolicitadas_'.$count]['opmeSolicitada']['opcaoFabricante'] = $tisintopm_opc_frn;
                    $hash .= $tisintopm_opc_frn;

                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['opmeSolicitadas_'.$count]['opmeSolicitada']['quantidadeSolicitada'] = $tisintopm_qtd_opm_sol;
                    $hash .= $tisintopm_qtd_opm_sol;

                    if (strlen($tisintopm_vlr_uni_opm_sol) > 1) {
                        $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['opmeSolicitadas_'.$count]['opmeSolicitada']['valorSolicitado'] = $tisintopm_vlr_uni_opm_sol;
                        $hash .= $tisintopm_vlr_uni_opm_sol;
                    }
                    
                    if(strlen($tisintopm_reg_msa) == 0) {
                        $erro = TRUE;
                        $msg = 'tisint_num: ' . $tisint_num . ' Pac: '.$pac_cod . ' - OPME sem registro ANS';
                    }
                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['opmeSolicitadas_'.$count]['opmeSolicitada']['registroANVISA'] = $tisintopm_reg_msa;
                    $hash .= $tisintopm_reg_msa;
                    

                    if(strlen($tisintopm_nom_fab_opm_sol) == 0) $tisintopm_nom_fab_opm_sol = $tisintopm_ref_frn;
                    if(strlen($tisintopm_nom_fab_opm_sol) == 0) $tisintopm_nom_fab_opm_sol = 'ASSOC HOSP BENEF SAO VICENTE PAULO';
                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['opmeSolicitadas_'.$count]['opmeSolicitada']['codigoRefFabricante'] = $tisintopm_nom_fab_opm_sol;// $tisintopm_ref_frn; 
                    $hash .= $tisintopm_nom_fab_opm_sol;// $tisintopm_ref_frn;
                    
                    
                    if(strlen($tisintopm_num_aut_frn) == 0) $tisintopm_num_aut_frn = 1;
                    $dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['opmeSolicitadas_'.$count]['opmeSolicitada']['autorizacaoFuncionamento'] = $tisintopm_num_aut_frn;  
                    $hash .= $tisintopm_num_aut_frn;


                    $count++;   

                }

                //if($count > 0){
                    //$dataVersao['solicitacaoProcedimento']['solicitacaoInternacao']['anexoClinico']['solicitacaoOPME']['Observacao'] = $tisint_obs;
                    //$hash .= $tisint_obs; 
                //}
                
                
                $dataVersao['hash'] = md5($hash);

                //echo '<pre>';print_r($dataVersao);exit();
                
                $xml = xml::arraytoXml($dataVersao, 'mensagemTISS');
                
                //$xml = xml::ajustaVersaoXml($xml); // retirado por causa do erro de mais de um procedimento
                $xml = xml::ajustaVersaoXmlKey($xml,'opme'); 
                
                $estrutura = $funcoes->verificarDiretorios();

                $arq_xml_xml = 'arquivos/xml/'     . $estrutura . $sequencialTransacao . '.xml';
                $arq_xml_env = 'arquivos/xml_env/' . $estrutura . $sequencialTransacao . '.xml';
                $arq_xml_err = 'arquivos/xml_err/' . $estrutura . $tisint_num . '.xml';
                $arq_xml_rtn = 'arquivos/xml_rtn/' . $estrutura . $sequencialTransacao . '.xml';

                $guia_nome = $arq_xml_env;//$funcoes->gerarNomeArquivo($sequencialTransacao,md5($hash));

                if ($erro == FALSE) {

                    file_put_contents($arq_xml_xml, $xml);

                    $xml = file_get_contents($arq_xml_xml);
                    $xml = xml::xmlToArray($xml); // CUIDADO SE TIVER UM VALOR VAZIO - VAI O VALOR O TEXTO ARRAY, DESTA FORMA OCORRE ERRO
                    $xml['hash'] = xml::hashToArray($xml);

                    @unlink($arq_xml_xml);  

                    $xml_arq = xml::arraytoXml($xml, 'mensagemTISS');
                    $xml_arq = xml::ajustaVersaoXml($xml_arq);
                    file_put_contents($arq_xml_env, $xml_arq); 

                    $xml = xml::xmlToArray($xml_arq); // realizado nova leitura por causa do erro de mais de um procedimento
                    //echo print_r($xml);

                    $result_xml = $clientSoap->tissSolicitacaoProcedimento($xml);
                    //echo '<br>'; print_r($result); 

                    $xml_arq = xml::objectToArray($result_xml);
                    //print_r($xml_arq);
                    $xml_arq = xml::arraytoXml($xml_arq, 'mensagemTISS');
                    $xml_arq = xml::ajustaVersaoXml($xml_arq);
                    file_put_contents($arq_xml_rtn, $xml_arq); 

                    $update_envio_ftp="UPDATE tistrn SET tistrn_ftp_sta='E', tistrn_ftp_nom = '".$guia_nome."',tistrn_ftp_cam = '".$arq_xml_env."' WHERE tistrn_num=".$sequencialTransacao." ";
                    $result = odbc_exec($bd_ingres, $update_envio_ftp);
                    if($result == FALSE){
                        $erro = TRUE;
                        $msg = 'tisint_num: ' . $tisint_num . ' Pac: '.$pac_cod . ' - Erro update tistrn';
                    }

                    @$senha = $result_xml->autorizacaoProcedimento->autorizacaoInternacao->autorizacaoDosServicos->dadosAutorizacao->senha;
                        
                    $msg = $count_envio.' - Guia: '.$tisint_num.' - Senha: '.$senha.' - Paciente: '.$pac_cod.' - Carteira: '.$tisint_num_crt.' | Numero Transação: '.$sequencialTransacao;                    
                    
                    if($erro == FALSE) { 
                        
                        // trocar status para E se senha > 0 
                        if(strlen($senha) > 0){

                            $result = odbc_exec($bd_ingres,"UPDATE tisintpcd SET tisintpcd_sta='E' WHERE tisintpcd_sta<>'C' AND tisint_num=".$tisint_num." AND fil_cod=".$fil_cod." AND emp_cod=".$emp_cod." ");
  
                            $result = odbc_exec($bd_ingres,"UPDATE tisintopm SET tisintopm_sta = 'E' WHERE tisintopm_sta <> 'C' AND tisint_num = ".$tisint_num." AND fil_cod = ".$fil_cod." AND emp_cod = ".$emp_cod." ");

                            $result = odbc_exec($bd_ingres, "update tisint set tisint_sta='E',tisint_trn='".$sequencialTransacao."' WHERE con_cod=".$tisint_con_cod." AND tisint_tpo_env='S' AND tisint_sta='P' AND tisint_num = ".$tisint_num."");
                            
                            $resultado = $retorno->Processamento($result_xml,'INT'); 
                            
                            if($resultado == TRUE && $result != FALSE){
                                odbc_commit($bd_ingres);
                                //echo 'COMMIT<br>';
                                echo $msg .= ' - Enviado e processado retorno!<br><br>';
                            }
                            else{
                                odbc_rollback($bd_ingres);
                                //echo 'ROLLBACK<br>';
                                echo $msg .= ' - Enviado, erro no processo de retorno!<br><br>';
                                file_put_contents($arq_xml_err, $msg);
                                if(ENVIO_EMAIL) $funcoes->emailError($msg);
                            }
							
                        }else{
                            odbc_rollback($bd_ingres);
                            echo $msg .= ' - Enviado, erro no processo de retorno!<br><br>'; 
                            file_put_contents($arq_xml_err, $msg);
                            if(ENVIO_EMAIL) $funcoes->emailError($msg);
                        }
                        
                    }else{
                        odbc_rollback($bd_ingres);
                        echo $msg .= ' - Enviado, erro no processo de retorno!<br><br>'; 
                        file_put_contents($arq_xml_err, $msg);
                        if(ENVIO_EMAIL) $funcoes->emailError($msg);
                    }

                } else {
                    odbc_rollback($bd_ingres);
                    echo $msg = '<br>Erro: Guia: '.$tisint_num.' Pac: '.$pac_cod.' - ' . $msg . '<br><br>';
                    @unlink($arq_xml);
                    file_put_contents($arq_xml_err, $msg);
                    if(ENVIO_EMAIL) $funcoes->emailError($msg);
                }
            }     
        
        }
        else{
            odbc_exec($bd_ingres, "update tisint set tisint_sta = 'E' WHERE con_cod=".$tisint_con_cod." AND tisint_tpo_env = 'S' AND tisint_sta = 'P' AND tisint_num = ".$tisint_num."");
            odbc_commit($bd_ingres);
        }
    } catch (Exception $exc) {
        odbc_rollback($bd_ingres);
        echo $msg = '<br>Erro Acesso Webservice Unimed (Guia: '.$tisint_num.' Pac: '.$pac_cod.') - Descrição erro: '.$exc->faultstring.'<br>';
        file_put_contents($arq_xml_err, $msg);
        if(ENVIO_EMAIL) $funcoes->emailError($msg);
        break;
    }
}

odbc_close($bd_ingres);

?>